# Reference: <https://postmarketos.org/devicepkg>
# Maintainer: Jianhua Lu <lujianhua000@gmail.com>
pkgname=device-xiaomi-elish
pkgdesc="Xiaomi Mi Pad 5 Pro"
pkgver=5
pkgrel=0
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
options="!check !archcheck"
depends="
	bootmac
	hexagonrpcd
	make-dynpart-mappings
	mesa-vulkan-freedreno
	mkbootimg
	postmarketos-base
	qbootctl
	swclock-offset
"
makedepends="devicepkg-dev"
replaces="hexagonrpcd-openrc"
source="
	81-libssc-xiaomi-elish.rules
	alsa-ucm-conf/elish.conf
	alsa-ucm-conf/HiFi.conf
	deviceinfo
	hexagonrpcd.confd
	modules-initfs
"

subpackages="
	$pkgname-kernel-boe:kernel_boe
	$pkgname-kernel-csot:kernel_csot
	$pkgname-nonfree-firmware:nonfree_firmware
	$pkgname-openrc
"

build() {
	devicepkg_build $startdir $pkgname
}

package() {
	devicepkg_package $startdir $pkgname

	# device-specific alsa ucm conf
	install -Dm644 "$srcdir/elish.conf" \
		"$pkgdir/usr/share/alsa/ucm2/Xiaomi/elish/elish.conf"

	install -Dm644 "$srcdir/HiFi.conf" \
		"$pkgdir/usr/share/alsa/ucm2/Xiaomi/elish/HiFi.conf"

	mkdir -p "$pkgdir/usr/share/alsa/ucm2/conf.d/sm8250"
	ln -s ../../Xiaomi/elish/elish.conf \
		"$pkgdir/usr/share/alsa/ucm2/conf.d/sm8250/Xiaomi Mi Pad 5 Pro.conf"

	install -Dm644 "$srcdir"/81-libssc-xiaomi-elish.rules \
		"$pkgdir"/usr/lib/udev/rules.d/81-libssc-xiaomi-elish.rules
}

kernel_boe() {
	pkgdesc="BOE Panel. To know which panel your device use and the status of the port, Visit the Mi Pad 5 Pro wiki page: https://wiki.postmarketos.org/wiki/Xiaomi_Mi_Pad_5_Pro_(xiaomi-elish)"
	depends="linux-postmarketos-qcom-sm8250"
	devicepkg_subpackage_kernel $startdir $pkgname $subpkgname
}

kernel_csot() {
	pkgdesc="CSOT Panel. To know which panel your device use and the status of the port, Visit the Mi Pad 5 Pro wiki page: https://wiki.postmarketos.org/wiki/Xiaomi_Mi_Pad_5_Pro_(xiaomi-elish)"
	depends="linux-postmarketos-qcom-sm8250"
	devicepkg_subpackage_kernel $startdir $pkgname $subpkgname
}

nonfree_firmware() {
	pkgdesc="Firmware for GPU, WiFi, etc."
	depends="
		firmware-xiaomi-elish-adreno
		firmware-xiaomi-elish-adsp
		firmware-xiaomi-elish-cdsp
		firmware-xiaomi-elish-cirrus
		firmware-xiaomi-elish-hexagonfs
		firmware-xiaomi-elish-initramfs
		firmware-xiaomi-elish-slpi
		firmware-xiaomi-elish-touchscreen
		firmware-xiaomi-elish-venus
		linux-firmware-ath11k
		linux-firmware-qca
		"
	mkdir "$subpkgdir"
}

openrc() {
	install_if="$pkgname=$pkgver-r$pkgrel openrc"
	install="$subpkgname.post-install $subpkgname.post-upgrade"

	install -Dm644 "$srcdir"/hexagonrpcd.confd \
		"$subpkgdir"/etc/conf.d/hexagonrpcd-sdsp
}

sha512sums="
d0e8f2e378130130ac72703aed957f7638e2dd75acf4aa421e1b4592c6cb6d296b652db0d9c242be4e56326760ce18d28c1e36ae553d0b7a7f91e12ab0353f22  81-libssc-xiaomi-elish.rules
7b5def03dc5da28c7449719f0619f9d9ddbd988235b8591304ae4fea0989189d65ca1bc0d43664115f595137ba7896359b1b5f48fd6e350cac5d41ef9b1df869  elish.conf
ed9a509f70715fd6c6614ee5fddbdb0ed2aa69f4a2983af9dbec26bdeb18fe93e3d1a65e03c618550c61da1416c79eb9440fb1bcd4961f85059b27904c4395cc  HiFi.conf
476d5e8a406865b940787ea501398ea59c0f42df62a54261856ff98303ba6c21cf5a1add64fccf49111de4bb7605486ec769416d2ab6c5395961b57d5a037fe6  deviceinfo
7d5a1b8c43b15d1711225f4680a67f365ca6515ddbf8239902c7886a20cf06d7da0f195760108ddeb4b039866e1c415981d413dee15eed4423a256d40a46a516  hexagonrpcd.confd
c76604b9449dd471645eed22fdfbf167c64336e1833fbd5d37efe1ae331afe608f36099e045fdf0b3b72d62d57bc8fa15a07f6300d167963ecbe4eac6ebff83c  modules-initfs
"
